对数组a中的n(0<n<100)个整数从小到大进行连续

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:40:37
希望名位高手们给点指点,这个我想了好久还是运行不了的,多谢啦 对数组a中的n(0<n<100)个整数从小到大进行连续编号,要求不能改变数组a中元素的顺序,且相同的整数大小的编号相同,例如:a={5,3,4,7,3,5,6} 则输出结果:{3,1,2,5,1,3,4}.

main()
{
int a[7]={5,3,4,7,3,5,6},b[7]={0};
int i,j,n;
/*把A中的数去掉重复的放入B中*/
b[n++]=a[0];
for(i=1;i<7;i++)
for(j=0;j<n;j++)
{
if(a[i]==b[j])
{
break;
}
if(j==n)
{
b[n++]=a[i];
}
}

/*把B中的排序*/
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
if(b[i]<b[j])
{
int t; t=b[i];b[i]=b[j];b[j]=t;
}
}
/*在B中找A中每个数对应的下标*/
for(i=0;i<7;i++)
for(j=0;j<n;j++)
{
if(a[i]==b[j])
{
printf("%d,",j+1);
}
}

}